Well-formed and scalable invasive software composition
نویسنده
چکیده
Software components provide essential means to structure and organize software effectively. However, frequently, required component abstractions are not available in a programming language or system, or are not adequately combinable with each other. Invasive software composition (ISC) is a general approach to software composition that unifies component-like abstractions such as templates, aspects and macros. ISC is based on fragment composition, and composes programs and other software artifacts at the level of syntax trees. Therefore, a unifying fragment component model is related to the context-free grammar of a language to identify extension and variation points in syntax trees as well as valid component types. By doing so, fragment components can be composed by transformations at respective extension and variation points so that always valid composition results regarding the underlying context-free grammar are yielded. However, given a language’s context-free grammar, the composition result may still be incorrect. Context-sensitive constraints such as type constraints may be violated so that the program cannot be compiled and/or interpreted correctly. While a compiler can detect such errors after composition, it is difficult to relate them back to the original transformation step in the composition system, especially in the case of complex compositions with several hundreds of such steps. To tackle this problem, this thesis proposes well-formed ISC—an extension to ISC that uses reference attribute grammars (RAGs) to specify fragment component models and fragment contracts to guard compositions with context-sensitive constraints. Additionally, well-formed ISC provides composition strategies as a means to configure composition algorithms and handle interferences between composition steps. Developing ISC systems for complex languages such as programming languages is a complex undertaking. Composition-system developers need to supply or develop adequate language and parser specifications that can be processed by an ISC composition engine. Moreover, the specifications may need to be extended with rules for the intended composition abstractions. Current approaches to ISC require complete grammars to be able to compose fragments in the respective languages. Hence, the specifications need to be developed exhaustively before any component model can be supplied. To tackle this problem, this thesis introduces scalable ISC—a variant of ISC that uses island component models as a means to define component models for partially specified languages while still the whole language is supported. Additionally, a scalable workflow for agile composition-system development is proposed which supports a development of ISC systems in small increments using modular extensions. All theoretical concepts introduced in this thesis are implemented in the Skeletons and Application Templates framework SkAT. It supports “classic”, well-formed and scalable ISC by
منابع مشابه
Towards a Taxonomy of Web Service Composition Approaches
Service-Oriented Architecture (SOA) is a well known paradigm for development of flexible and loose coupled software applications using services that are available in a network. The latter provide business functionality through well-defined interfaces that can be dynamically discovered. Services can be aggregated into more complex ones called composite services. Currently, there exist a lot of c...
متن کاملSADISCO: A Scalable Agent Discovery and Composition Mechanism
Peer-to-peer systems have recently gained popularity as a way to share files amongst distributed users. Such an approach can be applied to the discovery of distributed software agents. In this paper, we introduce a scalable agent discovery mechanism that utilizes a semantic layer on top of traditional middleware, and forms a hierarchy representing the types of agents on the network. The approac...
متن کاملDynamic configuration and collaborative scheduling in supply chains based on scalable multi-agent architecture
Due to diversified and frequently changing demands from customers, technological advances and global competition, manufacturers rely on collaboration with their business partners to share costs, risks and expertise. How to take advantage of advancement of technologies to effectively support operations and create competitive advantage is critical for manufacturers to survive. To respond to these...
متن کاملBiotite and Hornblende Composition Used to Investigate the Nature and Thermobarometry of Pichagchi Pluton, Northwest Sanandaj-Sirjan Metamorphic Belt, Iran
Pichagchi pluton is situated in the northeastern part of the Soursat complex in Sanandaj-Sirjan metamorphic belt of Iran. The pluton with the age of 74.20 Ma is composed mainly granodiorite, diorite, and tonalite in which mafic minerals are biotite and amphibole. In this study, composition of minerals used to describe the nature of the granitic magma and estimate the pressure and temperature at...
متن کاملTowards Safe and Scalable Compositional Analysis and Programming
Specifying, designing, and developing correct, efficient, and resilient software systems is a notoriously hard problem, particularly when placing these systems in open contexts in which they will interact with dynamic and unpredictable environments, peers, and adversaries. By “correct” we mean that we know with certainty some desirable invariants of a system. Many techniques are already availab...
متن کامل